home *** CD-ROM | disk | FTP | other *** search
- // SDownDlg.cpp : インプリメンテーション ファイル
- //
-
- #include "stdafx.h"
- #include "SDown.h"
- #include "SDownDlg.h"
-
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- char cdmsg[] = _T("last %d sec.");
-
- /////////////////////////////////////////////////////////////////////////////
- // アプリケーションのバージョン情報で使われている CAboutDlg ダイアログ
-
- class CAboutDlg : public CDialog
- {
- public:
- CAboutDlg();
-
- // ダイアログ データ
- //{{AFX_DATA(CAboutDlg)
- enum { IDD = IDD_ABOUTBOX };
- //}}AFX_DATA
-
- // ClassWizard は仮想関数のオーバーライドを生成します
- //{{AFX_VIRTUAL(CAboutDlg)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV のサポート
- //}}AFX_VIRTUAL
-
- // インプリメンテーション
- protected:
- //{{AFX_MSG(CAboutDlg)
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- };
-
- CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
- {
- //{{AFX_DATA_INIT(CAboutDlg)
- //}}AFX_DATA_INIT
- }
-
- void CAboutDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CAboutDlg)
- //}}AFX_DATA_MAP
- }
-
- BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
- //{{AFX_MSG_MAP(CAboutDlg)
- // メッセージ ハンドラがありません。
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CSDownDlg ダイアログ
-
- CSDownDlg::CSDownDlg(CWnd* pParent /*=NULL*/)
- : CDialog(CSDownDlg::IDD, pParent)
- {
- //{{AFX_DATA_INIT(CSDownDlg)
- // メモ: この位置に ClassWizard によってメンバの初期化が追加されます。
- //}}AFX_DATA_INIT
- // メモ: LoadIcon は Win32 の DestroyIcon のサブシーケンスを要求しません。
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- }
-
- void CSDownDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CSDownDlg)
- DDX_Control(pDX, IDC_PROGRESS, m_prgbar);
- DDX_Control(pDX, IDC_STATUS, m_ctrStatusDisp);
- DDX_Control(pDX, IDC_COUNTDOWN, m_ctrCountDisp);
- //}}AFX_DATA_MAP
- }
-
- BEGIN_MESSAGE_MAP(CSDownDlg, CDialog)
- //{{AFX_MSG_MAP(CSDownDlg)
- ON_WM_SYSCOMMAND()
- ON_WM_PAINT()
- ON_WM_QUERYDRAGICON()
- ON_WM_TIMER()
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CSDownDlg メッセージ ハンドラ
-
- BOOL CSDownDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
-
- // "バージョン情報..." メニュー項目をシステム メニューへ追加します。
-
- // IDM_ABOUTBOX はコマンド メニューの範囲でなければなりません。
- ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
- ASSERT(IDM_ABOUTBOX < 0xF000);
-
- CMenu* pSysMenu = GetSystemMenu(FALSE);
- if (pSysMenu != NULL)
- {
- CString strAboutMenu;
- strAboutMenu.LoadString(IDS_ABOUTBOX);
- if (!strAboutMenu.IsEmpty())
- {
- pSysMenu->AppendMenu(MF_SEPARATOR);
- pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
- }
- }
-
- // このダイアログ用のアイコンを設定します。フレームワークはアプリケーションのメイン
- // ウィンドウがダイアログでない時は自動的に設定しません。
- SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
- SetIcon(m_hIcon, FALSE); // 小さいアイコンを設定
-
- // TODO: 特別な初期化を行う時はこの場所に追加してください。
- SetTimer( 1, 1000, NULL );
-
- m_prgbar.SetRange( 0, m_nTime );
- m_prgbar.SetPos( m_nTime );
-
-
- CString disp;
- if( m_nOption & EWX_FORCE )
- disp = _T("強制");
- if( m_nOption & EWX_POWEROFF )
- disp += _T("電源オフ");
- if( m_nOption & EWX_SHUTDOWN )
- disp += _T("システム終了");
- if( m_nOption & EWX_REBOOT )
- disp += _T("再起動");
-
- disp += _T("を行います。");
- m_ctrStatusDisp.SetWindowText( disp );
-
- disp.Format( cdmsg, m_nTime );
- m_ctrCountDisp.SetWindowText( disp );
-
- SetWindowPos( &wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE );
-
- return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。
- }
-
- void CSDownDlg::OnSysCommand(UINT nID, LPARAM lParam)
- {
- if ((nID & 0xFFF0) == IDM_ABOUTBOX)
- {
- CAboutDlg dlgAbout;
- dlgAbout.DoModal();
- }
- else
- {
- CDialog::OnSysCommand(nID, lParam);
- }
- }
-
- // もしダイアログボックスに最小化ボタンを追加するならば、アイコンを描画する
- // コードを以下に記述する必要があります。MFC アプリケーションは document/view
- // モデルを使っているので、この処理はフレームワークにより自動的に処理されます。
-
- void CSDownDlg::OnPaint()
- {
- if (IsIconic())
- {
- CPaintDC dc(this); // 描画用のデバイス コンテキスト
-
- SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
-
- // クライアントの矩形領域内の中央
- int cxIcon = GetSystemMetrics(SM_CXICON);
- int cyIcon = GetSystemMetrics(SM_CYICON);
- CRect rect;
- GetClientRect(&rect);
- int x = (rect.Width() - cxIcon + 1) / 2;
- int y = (rect.Height() - cyIcon + 1) / 2;
-
- // アイコンを描画します。
- dc.DrawIcon(x, y, m_hIcon);
- }
- else
- {
- CDialog::OnPaint();
- }
- }
-
- // システムは、ユーザーが最小化ウィンドウをドラッグしている間、
- // カーソルを表示するためにここを呼び出します。
- HCURSOR CSDownDlg::OnQueryDragIcon()
- {
- return (HCURSOR) m_hIcon;
- }
-
- void CSDownDlg::OnTimer(UINT nIDEvent)
- {
- // todo:
- char disp[255];
- wsprintf( disp, cdmsg, m_nTime );
- m_ctrCountDisp.SetWindowText( disp );
- m_prgbar.SetPos( m_nTime );
-
- if( --m_nTime < 0)
- {
- KillTimer( 1 );
- CDialog::OnOK();
- }
- else
- {
- }
-
-
- CDialog::OnTimer(nIDEvent);
- }
-
- void CSDownDlg::OnOK()
- {
- CDialog::OnOK();
- }
-